package com.chenu.gamscriptman.domain.noindb;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * @author flyan
 * date 2019-12-24
 * @function 这个代表一条请求消息，它是消息通信的根本，
 * 消息指出想要什么服务以及携带的数据，同时还记录了是哪
 * 个用户发的消息。
 */
@Data
@Accessors(chain = true)
@ApiModel(value = "消息对象", description = "消息传递中的消息封装体")    /* 这是一个API调用需要用到的参数 */
public class Message {

    @ApiModelProperty(value = "用户源，指示是哪个用户发的消息，是一个用户号", name = "source", required = true,
            dataType = "long", example = "1")
    private Long source;         /* 谁发送的这条消息？ */

    @ApiModelProperty(value = "请求类型，发送请求时被任务用作判断用户需要请求什么服务；" +
            "任务返回处理结果时被用来判断此次操作是否成功，1：成功，其他失败。", name = "type", required = true,
            dataType = "int", example = "1")
    private Integer type;           /* 请求类型，他被任务用作判断用户需要请求什么服务 */

    @ApiModelProperty(value = "是否需要网页视图？", name = "needView", required = true,
            dataType = "boolean", example = "true")
    private boolean needView;       /* 是否需要网页视图？ */

    @ApiModelProperty(value = "消息携带的数据，应该以json字符串存放传递", name = "data", required = true,
            dataType = "string", example = "{\"id\":15,\"name\":\"IPhone\",\"sysVersion\":\"v1.0\",\"mac\":\"test-mac12\",\"storage\":\"剩余容量47.3G/总容量59.6G\",\"intranetIp\":\"192.168.0.1\",\"extranetIp\":\"179.0.0.1\",\"nrSameIp\":3,\"runGame\":\"一起来捉妖\",\"uptime\":1577455110,\"sdevNr\":\"15\",\"adminUsername\":\"root\"}")
    private String data;            /* 数据，以Json传递 */

    /* 处理成功与否，取决于消息类型，其索引号如下 */
    public static final int HANDLER_SUCCESS = 1;
    public static final int HANDLER_FAILURE = -1;

    /* 错误号 */
    public static final int ERROR_BAD_USER_SOURCE = 0;  /* 错误的用户源 */
    public static final int ERROR_NORMAL = -1;          /* 通常错误 */
    public static final int ERROR_REQUEST_TYPE = -2;    /* 错误的请求 */
    public static final int ERROR_NO_RESPOND = -3;      /* 服务器无响应 */
}
